#ifndef ITKIMAGEWRAPPER_H
#define ITKIMAGEWRAPPER_H

#include "AmaranthusCommon.h"

#include "ImageWrapperBase.h"
#include "itkSmartPointer.h"
#include "itkImageToVTKImageFilter.h"

template <class TInputImagePointer, class TInsideImagePointer> class ImageWrapper :
        public ImageWrapperBase
{

public:
    ImageWrapper() {}
    virtual ~ImageWrapper() {}

    virtual void SetImage(TInputImagePointer inputImage);
    virtual void ProcessImage() = 0;

protected:
    TInputImagePointer m_InputImage;
};

#include "ImageWrapper.tpp"

#endif
